Re: [INTERFACES] ecpg - `exec sql delete' failing
От | Herouth Maoz |
---|---|
Тема | Re: [INTERFACES] ecpg - `exec sql delete' failing |
Дата | |
Msg-id | v04003a06b14d14bde5cd@[147.233.55.121] обсуждение исходный текст |
Ответ на | ecpg - `exec sql delete' failing (Tom Good <tomg@nrnet.org>) |
Список | pgsql-interfaces |
At 0:46 +0300 on 4/4/98, Tom Good wrote: > Hi. Can't fathom why this code precompiles, compiles, links and > seems to execute - but won't delete records. > As always - any assistance greatly appreciated! > Tom > --- pgc code follows --- > > #include <stdio.h> > > EXEC SQL BEGIN DECLARE SECTION; > int ClientID; /* client_id */ > char FirstName[16]; /* client_fname */ > char LastName[16]; /* client_lname */ > char NameTag[16]; /* usr buffer */ > char reply; /* usr buffer */ > int delete_num; /* usr buffer */ > EXEC SQL END DECLARE SECTION; [snip] > printf("\t\tRemove this record (y/n): "); > scanf("%s", &reply); > if(reply == 'y') { > printf("\t\tEnter Client ID Number: "); > scanf("%d", &delete_num); > EXEC SQL DELETE FROM central WHERE client_id = delete_num; > } > else printf("Exiting...record not removed.\n"); > exit(0); > } Reminds me of a mistake a friend of mine did in one of his university exercises. The variable reply is declared as char, but you're scanning to it as string, so there is a "\0" which enters somewhere (perhaps the alignment bytes of delete_num, who knows), and causes a garble. Why don't you try to scan it using "%c", not "%s"? Herouth -- Herouth Maoz, B.Sc. Work: herouth@oumail.openu.ac.il Home: herutma@telem.openu.ac.il HOME PAGE: http://homes.openu.ac.il/~herouth/ Internet technical assistant Open University, Telem Project
В списке pgsql-interfaces по дате отправления: